﻿/*
 * 13-10-2010 - Mark de Ronde - 0937185
 * 
 * */
using System.Collections.Generic;
using System.Drawing;
using Roborally.CommonData.Enums;
using Roborally.CommonData.GlobaleTypes;

namespace Roborally.Spelleider
{
    /// <summary>
    /// Een instantie van deze class wordt gebruikt bij de functie VerplaatsSpeler
    /// En heeft alle info die nodig is om een Speler te Verplaatsen
    /// </summary>
    public class SpelerZetGegevens
    {
        #region aap
        private int spelerId;
        /// <summary>
        /// Het unieke speler ID
        /// </summary>
        public int SpelersID { get { return spelerId; } }
        private List<IProgramKaart> kaarten;
        /// <summary>
        /// De kaarten die de speler gekozen heeft (programmabaai/programbay)
        /// </summary>
        public List<IProgramKaart> GekozenKaarten { get { return kaarten; } }
        private int kaartIndex;
        /// <summary>
        /// De index van welke kaart omgedraaid is
        /// </summary>
        public int KaartIndex { get { return kaartIndex; } }
        private Point nieuweLocatie;
        /// <summary>
        /// De locatie waar de Speler naartoe gaat
        /// </summary>
        public Point NieuweLocatie { get { return nieuweLocatie; } }
        private Point oudeLocatie;
        /// <summary>
        /// De locatie waar de Speler vandaan komt
        /// </summary>
        public Point OudeLocatie { get { return oudeLocatie; } }
        private Richting richting;
        /// <summary>
        /// De richting die de Speler opkijkt
        /// </summary>
        public Richting RichtingSpeler { get { return richting; } }
        private int schade;
        /// <summary>
        /// Het aantal schade punten dat de speler heeft
        /// </summary>
        public int Schade { get { return schade; } }
        private int levens;
        /// <summary>
        /// Het aantal levens punten dat de speler heeft
        /// </summary>
        public int Levens { get { return levens; } }
        private bool powerDown;
        /// <summary>
        /// Of de speler power down is of niet
        /// </summary>
        public bool Powerdown { get { return powerDown; } }
        #endregion
        /// <summary>
        /// De constructor voor een nieuwe Zet
        /// </summary>
        /// <param name="spelerId"></param>
        /// <param name="kaarten"></param>
        /// <param name="index"></param>
        /// <param name="nieuweLocatie"></param>
        /// <param name="oudeLocatie"></param>
        /// <param name="richting"></param>
        /// <param name="schade"></param>
        /// <param name="levens"></param>
        /// <param name="powerDown"></param>
        public SpelerZetGegevens(int spelerId, List<IProgramKaart> kaarten, int index, Point nieuweLocatie,
            Point oudeLocatie, Richting richting, int schade, int levens, bool powerDown)
        {
            this.spelerId = spelerId;
            this.kaarten = kaarten;
            this.kaartIndex = index;
            this.nieuweLocatie = nieuweLocatie;
            this.oudeLocatie = oudeLocatie;
            this.richting = richting;
            this.schade = schade;
            this.levens = levens;
            this.powerDown = powerDown;
        }
    }
}
